import { CSSProperties } from 'vue'
import { TabsProps, TabPaneProps } from 'element-plus'
import { IconifyJSON } from '@iconify/vue'
import { IconSetIconifyPropsType } from '../XIconSetIconify'
import { IconSetOnlineSearchIconifyPropsType } from '../XIconSetOnlineSearchIconify'
import { IconType } from '@xtail/vue3'

export const IconIconifyPickerPropsType_Name = 'IconIconifyPickerPropsType'

export type IconIconifyPickerPropsType = {
  iconSets?: Record<string, IconifyJSON | string>
  value?: IconType
  'onUpdate:value'?: (value: IconType) => void
  onlineSearch?: boolean
  onlineSearchTabPaneProps?: Partial<TabPaneProps>
  onlineSearchIconSetProps?: IconSetOnlineSearchIconifyPropsType
  iconSetIconifyProps?: Omit<
    IconSetIconifyPropsType,
    'iconSet' | 'value' | 'onUpdate:value' | 'modelValue' | 'onUpdate:modelValue'
  >
  tabsProps?: Partial<TabsProps>
  tabsClass?: string | string[]
  tabsStyle?: string | Partial<CSSProperties>
  tabPaneProps?: Partial<TabPaneProps>
  tabPaneClass?: string | string[]
  tabPaneStyle?: string | Partial<CSSProperties>
}
